package org.xlx.xlx_oa.role_user.convertor;

import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import org.xlx.xlx_oa.common.BaseConvertor;
import org.xlx.xlx_oa.role_user.domain.*;
import org.xlx.xlx_oa.role_user.domain.dto.*;
import org.xlx.xlx_oa.role_user.domain.vo.*;

import java.util.List;

@Mapper
public interface RoleUserConvertor extends BaseConvertor {
    RoleUserConvertor INSTANCE = Mappers.getMapper(RoleUserConvertor.class);

    SysControl convertVoToControl(SysControlVo controlVo);

    List<SysControl> convertVoToListControl(List<SysControlVo> list);

    List<SysControlDto> convertToListSysControlDto(List<SysControl> list);

    SysControlDto convertToSysControlDto(SysControl list);

    SysNotificationDto convertToSysNotificationDto(SysNotification sysNotification);

    List<SysNotificationDto> convertToListSysNotificationDto(List<SysNotification> list);

    AdmDepartment convertVoToDepartment(AdmDepartmentVo departmentVo);

    AdmDepartmentDto convertToDepartmentDto(AdmDepartment department);

    List<AdmDepartmentDto> convertToListDepartmentDto(List<AdmDepartment> list);

    AdmPosition convertVoToPosition(AdmPositionVo positionVo);

    AdmPositionDto convertToAdmPositionDto(AdmPosition position);

    List<AdmPositionDto> convertToListAdmPositionDto(List<AdmPosition> list);

    AdmUser convertVoToAdmUser(AdmUserVo admUserVo);

    List<AdmUser> convertVoToListAdmUser(List<AdmUserVo> list);

    AdmUserDto convertToUserDto(AdmUser user);

    List<AdmUserDto> convertToUserDtoList(List<AdmUser> list);

    SysRole convertVoToRole(SysRoleVo roleVo);

    SysRoleDto convertToSysRoleDto(SysRole role);

    List<SysRoleDto> convertToListSysRoleDto(List<SysRole> list);

    SysRoute convertVoToSysRoute(SysRouteVo routeVo);

    SysRouteDto convertToSysRouteDto(SysRoute route);

    List<SysRouteDto> convertToListSysRouteDto(List<SysRoute> list);

    AdmProcessDto convertToProcessDto(AdmProcess process);

    List<AdmProcessDto> convertToProcessDtoList(List<AdmProcess> list);


}
